perm filename OO3.FAI[TMP,LCS]1 blob sn#152812 filedate 1975-03-30 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE OO
C00004 00003	MVM:	HRLI OU,400000(MA)
C00006 00004	BACK:	HRRZI 6,-2(CX)
C00008 00005	FIXIT:	SETZM OUTFLG
C00010 00006	GETO:	MOVEM EN,TMP
C00012 00007	PTBEG:	SKIPL PTFLG
C00014 00008	FILIN:	OPEN DEVN
C00015 ENDMK
C⊗;
	TITLE OO
	EXTERNAL JOBDDT,JOBOPC
	EXTERNAL JOBAPR,JOBTPC
	EN←7 ↔ TS←10 ↔ OU←11
	CX←13 ↔ MA←14 ↔ N←15
INT:	RESET
	OUTSTR CRLF
STAR:	HRRZI N,MEM
	CLRBFI
	OUTSTR ASTR
	INCHWL EN
	CAIN EN,15
	JRST STAR
	HRRZI TS,(N)
INLIN:	HRRZM EN,(TS)
	SETZM 1(TS)
	ADDI TS,2
	INCHRS EN
	CAIA
	JRST INLIN
	SUBI TS,4
	HRRZ EN,2(TS)
	TRNN EN,600
	JRST MAIN
	CAIN EN,612
	JRST DDTST
	CAIN EN,302
	JRST PTBEG
	CAIN EN,311
	JRST FILIN
	CAIN EN,317
	JRST FILO
	CAIN EN,305
	JRST PTEND
	SETOM OUTFLG
	TRNE EN,400
	SETOM RFLG
	CAIE EN,301
	JRST .+3
	SETOM ADFLG
	JRST .+4
	CAIE EN,314
	JRST MAIN+1
	SETOM LITF
	ADDI TS,2
	OUTSTR CRLF
MAIN:	OUTSTR SPACE
	HRRZI MA,MEM
	HRRZI CX,(N)
	JRST BGIN
MVM:	HRLI OU,400000(MA)
	HRRZI 6,2
	JRST LMVM
LAEQ:	HRRZI 6,2
	CAIE OU,(MA)
	ADDI 6,2
	SUBI 5,2
	HLL OU,(5)
LMVM:	MOVEM OU,(5)
	SETZM 1(5)
	ADDI 5,2
	SUBI TS,(6)
	ADDI 6,(5)
	HRLZI 6,(6)
	HRRI 6,(5)
	BLT 6,(TS)
	JRST LKMO
FDEQ:	MOVE 4,(MA)
	HRRZI 5,(N)
LKMO:	CAMN 4,(5)
	JRST EQU
ADIN:	ADDI 5,2
	CAIGE 5,(TS)
	JRST LKMO
	ADDI MA,2
BGIN:	CAIGE MA,(N)
	JRST FDEQ
	HRRZI MA,(CX)
	ADDI N,2
	CAIGE N,(TS)
	JRST FDEQ
	JRST BACK
EQU:	HRRZI OU,(MA)
	CAILE TS,2(5)
	CAIG N,2(MA)
	JRST CKLA
	MOVE 6,2(MA)
	CAMN 6,2(5)
	HRRI OU,2(MA)
CKLA:	CAIGE 5,2(N)
	JRST .+4
	HRRZ 6,-2(5)
	CAIN MA,2(6)
	JRST LAEQ
	CAIE OU,(MA)
	JRST MVM
	SKIPGE 1(5)
	JRST ADIN
	HRLI OU,400001(OU)
	AOJ OU,
	MOVEM OU,1(5)
	CAIGE CX,-2(TS)
	JRST ADIN
BACK:	HRRZI 6,-2(CX)
	ADDI 6,2
	SKIPGE 1(6)
	JRST NEGA+1
	SKIPGE OU,(6)
	AOBJN OU,NEGA
	HRRZI OU,(6)
	HRLI OU,400000(6)
NEGA:	MOVEM OU,1(6)
	CAIGE 6,-2(TS)
	JRST BACK+1
	CAIE TS,2(CX)
	JRST NOT1
	SUBI TS,2
	MOVE EN,(TS)
	SUB OU,ONEB
	CAME OU,EN
	CAIN CX,(OU)
	JRST NEW1
	SKIPGE OUTFLG
	AOBJN OU,FIXIT
	HRRZI EN,1(OU)
	AOBJN OU,GETO
NEW1:	SKIPL OUTFLG
	AOBJN OU,GETO
	HRRZI OU,1(CX)
	HRLI OU,400000(OU)
	JRST FIXIT-1
NOT1:	HRRZI EN,-2(TS)
	HRLI EN,400000(CX)
	MOVE OU,EN
	AOBJP OU,
	SKIPL OUTFLG
	JRST GETO
	MOVEM EN,(TS)
	MOVEM OU,1(TS)
	HRRZI OU,1(TS)
	HRLI OU,400000(OU)
	SKIPL ADFLG
	ADDI TS,2
FIXIT:	SETZM OUTFLG
	SKIPGE EN,TMP
	JRST NSEEN
CKFLS:	SKIPGE ADFLG
	JRST ADER
	SKIPGE LITF
	JRST LITA
	SKIPGE RFLG
	JRST RPLACE
	MOVEM OU,(EN)
	JRST GETO
LITA:	SUB OU,ONEB
	MOVEM OU,(EN)
	SETZM LITF
	JRST GETO
NSEEN:	MOVEM EN,(TS)
	HRRZI EN,1(TS)
	ADDI TS,2
	JRST CKFLS
RPLACE:	HRR OU,(OU)
	TLZ OU,400000
	TRO OU,400000
	MOVEM OU,(EN)
	SETZM RFLG
	JRST GETO
ADER:	MOVE 5,(EN)
	MOVE 4,-1(5)
	MOVEM 4,(TS)
	MOVEM 5,1(TS)
	MOVE 4,-1(OU)
	MOVEM 4,2(TS)
	MOVEM OU,3(TS)
	HRRZI OU,2(TS)
	HRLI OU,400000(TS)
	MOVEM OU,4(TS)
	AOBJP OU,
	MOVEM OU,5(TS)
	HRRZI OU,5(TS)
	HRLI OU,400000(OU)
	MOVEM OU,(EN)
	ADDI TS,6
	SETZM ADFLG
GETO:	MOVEM EN,TMP
	HRRM TS,STAR
	HRRZI MA,(TS)
	HRLI MA,700
	ADDI TS,200
	TLZN OU,400000
	TRNN OU,400000
	JRST GOUT
	MOVE EN,OU
	HRRZI 4,777775
	JRST MKOUT
PUDO:	HRLI OU,(4)
	PUSH TS,OU
	MOVE OU,EN
GOUT:	HLRZ 4,OU
MOR:	MOVE EN,(4)
	TLZE EN,400000
	JRST PUDO
	TRNN EN,400000
	JRST DPCH
MKOUT:	HLRZ 6,EN
	HRLI EN,(EN)
	TRZ EN,400000
	MOVEM EN,(6)
	CAIA
DPCH:	IDPB EN,MA
ADO:	ADDI 4,2
	CAIG 4,(OU)
	JRST MOR
	TLNN TS,777777
	JRST TYOUT
	POP TS,OU
	HLRZ 4,OU
	JRST ADO
TYOUT:	HRRZI EN,15
	IDPB EN,MA
	HRRZI EN,12
	IDPB EN,MA
	SETZ EN,
	IDPB EN,MA
	SUBI TS,177
	SKIPGE PTFLG
	JRST PTOUT
	OUTSTR (TS)
	JRST STAR
PTBEG:	SKIPL PTFLG
	PTYGET EN
	JRST STAR
	MOVEM EN,PTNUM
	HRRZI TS,5
	PTJOBX EN
	JRST STAR
	HRRZI TS,3
	PTJOBX EN

	HRRZI EN,INTRU
	HRRZM EN,JOBAPR
	HRLZI EN,1000
	INTORM EN,

	SETOM PTFLG
	JRST STAR-1

IPC:	0   ↔	ITS:	0
IEN:	0
INTRU:	HRRZ 12,JOBTPC
	HRRZM 12,IPC
	CAIE 12,STAR+3
	UWAIT
	DEBREAK
	MOVEM TS,ITS
	MOVEM EN,IEN
	HRRZ EN,PTNUM
OUTS:	HRRZI TS,PTNUM+2
	PTRDS EN
	OUTSTR (TS)
	PTOCNT EN
	JUMPG TS,OUTS
	MOVE TS,ITS
	MOVE EN,IEN
	CAIN 12,STAR+3
	HRRZ N,STAR
	JRST @IPC
	
PTOUT:	HRRZI 6,(TS)
	MOVE EN,PTNUM
	PTWRS7 EN
	JRST STAR
PTEND:	SETZM PTFLG
	HRRZ EN,PTNUM
	PTYREL EN
	JRST STAR-1
DDTST:	SKIPN JOBDDT
	JRST STAR
	HRRZI OU,INT
	MOVEM OU,JOBOPC
	HRRZ OU,JOBDDT
	JRST (OU)


FILIN:	OPEN DEVN
	JRST ERRO
	SETZM FNAME+3
	LOOKUP FNAME
	JRST ERRO
	MOVE EN,INPO
	SETZ TS,
	INPUT EN
	CLOSE
	HRRZ N,SVN
	HRRM N,STAR
	JRST INT
FILO:	OPEN DEVN
	JRST ERRO
	SETZM FNAME+3
	ENTER FNAME
	JRST ERRO
	HRRM N,SVN
	MOVE EN,INPO
	SETZ TS,
	OUTPUT EN
	CLOSE
	JRST INT
ERRO:	OUTSTR QMARK
	JRST INT
QMARK:	45767706424
INPO:	IOWD 20000,SVN
DEVN:	17
	SIXBIT/DSK/
	0
FNAME:	SIXBIT/ALY/
	SIXBIT/OOP/
	BLOCK 2
CRLF:	64240,,0
ASTR:	ASCIZ/*/
SPACE:	ASCIZ/ /
ONEB:	1,,1 ↔	TMP:	0
OUTFLG:	0    ↔	RFLG:	0
LITF:	0    ↔	ADFLG:	0
PTFLG:	0    ↔	PTNUM:	0
	LOC 15000
SVN:	0
MEM:	BLOCK 20000
	END INT